package com.ruoyi.nsh.util;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class DB2CMD {

	/**
	 * @author yys
	 * @param strcmd 调用cmd的参数
	 * @param argStrings 这是个无限个数扩展的字符参数	 比如这里常用是5个 
	 * @ 第一个  IP
	 * @ 第二个  catalogname
	 * @ 第三个 数据库名
	 * @ 第四个 catalogdbname
	 * @ 第五个	端口
	 * 调用cmd
	 */
	  public static void run_cmd(String strcmd, String... argStrings) {
				  	strcmd = strcmd + " ";
			        if (argStrings != null && argStrings.length > 0) {
			            for (String string : argStrings) {
			            	strcmd += string + " ";
			            }
			        }

		          System.out.println(strcmd);
		          Runtime rt = Runtime.getRuntime();
		          //Runtime.getRuntime()返回当前应用程序的Runtime对象
		          Process ps = null;
		          //Process可以控制该子进程的执行或获取该子进程的信息。
		          try {
		              ps = rt.exec(strcmd);
		              //该对象的exec()方法指示Java虚拟机创建一个子进程执行指定的可执行程序，并返回与该子进程对应的Process对象实例。
		              ps.waitFor();  //等待子进程完成再往下执行。
		          } catch (IOException e1) {
		              e1.printStackTrace();
		          } catch (InterruptedException e) {
		              // TODO Auto-generated catch block
		              e.printStackTrace();
		          }

		          int i = ps.exitValue();
		          //接收执行完毕的返回值
		          if (i == 0) {
		              System.out.println("执行完成.");
		          } else {
		              System.out.println("执行失败.");
		          }

		          ps.destroy();  //销毁子进程
		          ps = null;   
		      }

	public static String GetList(String strcmd) {

		Runtime rt = Runtime.getRuntime();
		//Runtime.getRuntime()返回当前应用程序的Runtime对象
		Process ps = null;
		//Process可以控制该子进程的执行或获取该子进程的信息。
		try {
		//很奇怪 这里获取不到任何信息！！
			BufferedReader br = new BufferedReader(new InputStreamReader(rt.exec(strcmd).getInputStream()));

			String line=null;
			StringBuffer b=new StringBuffer();
			while ((line=br.readLine())!=null) {
				b.append(line+"\n");
			}
			System.out.println("结果："+b.toString());
			return b.toString();

		} catch (IOException e1) {
			return e1.toString();
		}

	}

}
